package cn.wolfcode.trip.admin.util;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.ServletContext;
import java.io.File;
import java.io.IOException;
import java.util.UUID;

/**
 * 文件上传工具
 */
public class UploadUtil {

	public static final String IMG_BASE_PATH = "/d:/img/";


	/**
	 * 处理文件上传
	 * 
	 * @param file
	 * @param basePath
	 *            存放文件的目录的绝对路径 servletContext.getRealPath("/upload")
	 * @return  123.png
	 */
	public static String upload(MultipartFile file, String basePath) {
		//生成一个UUID字符串
		String uuid = UUID.randomUUID().toString();
		//获取原始的名字
		String orgFileName = file.getOriginalFilename();
		//获取后缀名,并在前面添加一个.
		String ext= "." + FilenameUtils.getExtension(orgFileName);
		//把文件名和后缀名和UUid字符串拼接成一个新的文件名
		String fileName = uuid + ext;
		try {
			//生成一个新的文件,在传入进来的upload路径中
			File targetFile = new File(basePath, fileName);
			//再通过工具写入流到这个心的文件中
			FileUtils.writeByteArrayToFile(targetFile, file.getBytes());
			//最后返回路径加文件名
			return "/upload/" + fileName;

		} catch (IOException e) {
			e.printStackTrace();
		}
		return "";
	}

	/**
	 * 删除文件
	 * @param imagePath
     */
	public static void deleteFile(ServletContext servletContext, String imagePath) {
		String path = servletContext.getRealPath("/") + imagePath;
		File file = new File(path);
		if (file.exists()) {
			file.delete();
		}
	}
}
























